import Vue from 'vue';
import VueRouter from 'vue-router';
// 导入持久化方法
import { getItem } from '../Utils/storage';
// 导入配置文件，获取本地存储名称
import config from '../config/url.config';

Vue.use(VueRouter);

const routes = [
  // 定义路由规则
  {
    path: '/',
    redirect: '/login',
  },
  {
    path: '/login',
    // 使用路由懒加载的形式
    component: () => import('../views/Login.vue'),
  },
];

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes,
});
// 设置路由守卫，用户必须登录才可以
router.beforeEach((to, from, next) => {
  // 每次跳转路由之前，都需要判断有没有登录，如果没有登录强制跳转到登陆页面
  /* 如何判断有没有登录，全局token引入 */
  const tokenStr = getItem(config.token);
  console.log(tokenStr);
  console.log(to, from);
  // 如果是从登陆页面跳转过来的，那我就直接放行，因为用户已经登录过
  if (to.path === '/login') return next();
  // 如果本地无法获取token值，那么用户不能通过直接输入路由地址进行跳转，强行让他进入登录界面
  if (!tokenStr) return next('/login');
  // 第三种情况，如果用户已经登录，代表有权限，可以自由跳转所有路由
  next();
});

export default router;
